package cc.jq1024.domain.award.repository;

import cc.jq1024.domain.award.model.aggregate.GiveOutPrizesAggregate;
import cc.jq1024.domain.award.model.aggregate.UserAwardRecordAggregate;

/**
 * @Author: jia-qiang ljq1024.cc
 * @desc: 奖品仓储服务 - 接口
 * @Date: 2024-06-20-17:21
 */
public interface IAwardRepository {

    /**
     * 保存用户奖品流水
     * 存储聚合对象 - 一个事务下，用户的中奖记录
     * @param userAwardRecordAggregate 用户中奖聚合对象
     */
    void saveUserAwardRecord(UserAwardRecordAggregate userAwardRecordAggregate);

    /**
     * 查询奖品配置
     * @param awardId 奖品ID
     * @return 奖品配置【0.01-1， 1-100】等
     */
    String queryAwardConfig(Long awardId);

    /** 存储发奖对象 - 积分发奖 */
    void saveGiveOutPrizesAggregate(GiveOutPrizesAggregate giveOutPrizesAggregate);

    /** 查询奖品Key */
    String queryAwardKey(Long awardId);
}
